package main

import "fmt"

type Person91 struct {
	Name string
	Sex  byte
	Age  int
}

func (person Person91) test91() {
	person.Name = "KKK"
	person.Sex = 13
	person.Age = 2
}

func (person *Person91) test92() {
	(*person).Name = "GGG"
	person.Sex = 15
	person.Age = 29
}

func main_91() {
	p := &Person91{
		Name: "xdc",
		Sex:  1,
		Age:  2,
	}
	// 结构体变量时一个指针变量， 它能够调用哪些方法，这些方法就是一个方法集

	// 引用传递
	p.test92()
	fmt.Println(p)

	//内部做的转换，先把指针p，转出*p后再调用，这个还是值传递
	p.test91()
	fmt.Println(p)

}

func main() {
	p := Person91{
		Name: "xdc",
		Sex:  1,
		Age:  2,
	}
	// 结构体变量时一个指针变量， 它能够调用哪些方法，这些方法就是一个方法集

	// 引用传递
	p.test92()
	fmt.Println(p)

	//内部做的转换，先把指针p，转出*p后再调用，这个还是值传递
	p.test91()
	fmt.Println(p)

}
